package com.mdd.front.service.address;

import com.mdd.common.core.PageResult;
import com.mdd.front.validate.address.UserAddressPageParam;
import com.mdd.front.validate.address.UserAddressParam;
import com.mdd.front.vo.address.UserAddressDetailVo;
import com.mdd.front.vo.address.UserAddressListVo;

/**
 * 用户地址服务接口类
 */
public interface IUserAddressService {

    /**
     * 用户地址列表
     *
     * @param params    搜索参数
     * @return PageResult<UserAddressVo>
     */
    PageResult<UserAddressListVo> list(UserAddressPageParam params);

    /**
     * 用户地址详情
     *
     * @param id 主键ID
     * @return UserAddress
     */
    UserAddressDetailVo detail(Long id);

    /**
     * 用户地址新增
     *
     * @param userAddressParam 参数
     */
    void add(UserAddressParam userAddressParam);

    /**
     * 用户地址编辑
     *
     * @param userAddressParam 参数
     */
    void edit(UserAddressParam userAddressParam);

    /**
     * 用户地址删除
     *
     * @param id 主键ID
     */
    void del(Long id);

    UserAddressDetailVo getDefaultAddress(Long userId);
}
